package secondStage.part3.Set.自然排序Comparable的使用;

import java.util.TreeSet;

/**
 * @ClassName: [TreeSetTest]
 * @Description: 自然排序Comparable的使用
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-03]
 * @Version: [v1.0]
 */
/*
3.8自然排序Comparable的使用
    存储学生对象并遍历，创建TreeSet集合使用无参构造方法
    要求:按照年龄从小到大排序，年龄相同时，按照姓名的字母顺序排序
    结论
       用TreeSet集合存储自定义对象，无参构造方法使用的是自然排序对元素进行排序的
       自然排序，就是让元素所属的类实现Comparable接口，重写compareTo(To)方法
       重写方法时，一定要注意排序规则必须按照要求的主要条件和次要条件来写
*/
public class TreeSetTest {
    public static void main(String[] args) {
        //创建对象
        TreeSet<Student> ts = new TreeSet<>();
        //创建学生对象
        Student s1 = new Student("王昭君", 17);
        Student s2 = new Student("西施", 21);
        Student s3 = new Student("杨玉环", 19);
        Student s4 = new Student("貂蝉", 23);

        Student s5 = new Student("林青霞", 23);
        Student s6 = new Student("林青霞", 23);

        ts.add(s1);
        ts.add(s2);
        ts.add(s3);
        ts.add(s4);
        ts.add(s5);
        //不重复元素
        ts.add(s6);
        //需要重写compareTo()方法才不会ClassCastException报错
        for (Student s : ts) {
            System.out.println(s.getName() + "=" + s.getAge());
        }
    }
}
